Data-plane algorithms are algorithms implemented within a network switch. These algorithms process every data packet passing through the switch, transforming the packet and often some state stored on the switch. Examples include in-network congestion control, active queue management, network measurement, and load-balanced data-plane routing.
Because data-plane algorithms process every packet, an important implementation requirement is the ability to process packets at line rate. As a result, these algorithms are typically implemented using dedicated hardware. However, hardware designs are rigid, preventing reconfigurability in the field. This rigidity affects network switch vendors building switch boxes based on merchant-silicon switch chips, network operators using merchant silicon within private networks, and researchers developing new switch algorithms. Today, the only way to implement a new data-plane algorithm at line rate is to build hardware for it.